home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / smaltalk / manchest.lha / MANCHESTER / manchester / 2.2 / New-Background.st < prev    next >
Text File  |  1993-07-24  |  15KB  |  730 lines

  1. "    NAME        New-Background
  2.     AUTHOR        manchester
  3.     FUNCTION    ?
  4.     ST-VERSION    2.2
  5.     PREREQUISITES    
  6.     CONFLICTS
  7.     DISTRIBUTION    world
  8.     VERSION        1
  9.     DATE    22 Jan 1989"
  10. 'From Smalltalk-80, version 2, of April 1, 1983 on 10 December 1986 at 5:10:45 pm'!
  11.  
  12. Form subclass: #Cursor
  13.     instanceVariableNames: ''
  14.     classVariableNames: 'BlankCursor CornerCursor CrossHairCursor CurrentCursor DownArrowHeadCursor DownCursor GarbageCursor LeftArrowHeadCursor MarkerCursor NormalCursor OriginCursor ReadCursor ReverseSpiralCursor RightArrowHeadCursor SpiralCursor SquareCursor TexCursor UpArrowHeadCursor UpCursor UpDownCursor WaitCursor WriteCursor XeqCursor '
  15.     poolDictionaries: ''
  16.     category: 'Graphics-Display Objects'!
  17. Cursor comment:
  18. 'I am a 16 x 16 dot matrix suitable for use as the current cursor.'!
  19.  
  20.  
  21. !Cursor methodsFor: 'printing'!
  22.  
  23. printOn: aStream 
  24.     self storeOn: aStream base: 2! !
  25.  
  26. !Cursor methodsFor: 'displaying'!
  27.  
  28. beCursor
  29.     "Tell the interpreter to use the receiver as the current cursor image.  Fail if the 
  30.     receiver does not match the size expected by the hardware.  Essential.  See 
  31.     Object documentation whatIsAPrimitive."
  32.  
  33.     <primitive: 101>
  34.     self primitiveFailed!
  35.  
  36. show
  37.     "Make the current cursor shape be the receiver."
  38.     Sensor currentCursor ~= self ifTrue:
  39.         [Sensor currentCursor: self]!
  40.  
  41. showGridded: gridPoint
  42.     "Make the current cursor shape be the receiver, forcing the location of cursor
  43.     to the point nearest gridPoint."
  44.     Sensor primCursorLocPut: ((Sensor cursorPoint grid: gridPoint) + self offset).
  45.     Sensor currentCursor: self!
  46.  
  47. showWhile: aBlock 
  48.     "While evaluating the argument, aBlock, make the receiver be the cursor shape."
  49.  
  50.     | oldcursor value |
  51.     oldcursor _ Sensor currentCursor.
  52.     self show.
  53.     value _ aBlock value.
  54.     oldcursor show.
  55.     ^value! !
  56.  
  57. !Cursor methodsFor: 'updating'!
  58.  
  59. changed: aParameter 
  60.     self == CurrentCursor ifTrue: [self beCursor].
  61.     super changed: aParameter! !
  62. "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
  63.  
  64. Cursor class
  65.     instanceVariableNames: ''!
  66.  
  67.  
  68. !Cursor class methodsFor: 'class initialization'!
  69.  
  70. initialize
  71.     "Create all the standard cursors
  72.         Cursor blank
  73.         Cursor corner
  74.         Cursor crossHair
  75.         Cursor down
  76.         Cursor execute
  77.         Cursor garbage
  78.         Cursor marker
  79.         Cursor normal
  80.         Cursor origin
  81.         Cursor read
  82.         Cursor square
  83.         Cursor up
  84.         Cursor wait
  85.         Cursor write"
  86.  
  87.     OriginCursor _   
  88.         (Cursor
  89.             extent: 16@16
  90.             fromArray: #(
  91.         2r1111111111111111
  92.         2r1111111111111111
  93.         2r1100000000000000
  94.         2r1100000000000000
  95.         2r1100000000000000
  96.         2r1100000000000000
  97.         2r1100000000000000
  98.         2r1100000000000000
  99.         2r1100000000000000
  100.         2r1100000000000000
  101.         2r1100000000000000
  102.         2r1100000000000000
  103.         2r1100000000000000
  104.         2r1100000000000000
  105.         2r1100000000000000
  106.         2r1100000000000000)
  107.             offset: -2@-2).
  108.  
  109.     CornerCursor _ 
  110.         (Cursor 
  111.             extent: 16@16
  112.             fromArray: #(
  113.         2r0000000000000011
  114.         2r0000000000000011
  115.         2r0000000000000011
  116.         2r0000000000000011
  117.         2r0000000000000011
  118.         2r0000000000000011
  119.         2r0000000000000011
  120.         2r0000000000000011
  121.         2r0000000000000011
  122.         2r0000000000000011
  123.         2r0000000000000011
  124.         2r0000000000000011
  125.         2r0000000000000011
  126.         2r0000000000000011
  127.         2r1111111111111111
  128.         2r1111111111111111)
  129.             offset: -14@-14).
  130.  
  131.     ReadCursor _  
  132.         (Cursor
  133.             extent: 16@16
  134.             fromArray: #(
  135.         2r0000110000000110
  136.         2r0001001000001001
  137.         2r0001001000001001
  138.         2r0010000000010000
  139.         2r0100000000100000
  140.         2r1111101111100000
  141.         2r1000010000100000
  142.         2r1000010000100000
  143.         2r1011010110100000
  144.         2r0111101111000000
  145.         2r0
  146.         2r0
  147.         2r0
  148.         2r0
  149.         2r0
  150.         2r0)
  151.     offset: 0@0).
  152.  
  153.     WriteCursor _ (Cursor
  154.     extent: 16@16
  155.     fromArray: #(
  156.         2r0000000000000110
  157.         2r0000000000001111
  158.         2r0000000000010110
  159.         2r0000000000100100
  160.         2r0000000001001000
  161.         2r0000000010010000
  162.         2r0000000100100000
  163.         2r0000001001000011
  164.         2r0000010010000010
  165.         2r0000100100000110
  166.         2r0001001000001000
  167.         2r0010010000001000
  168.         2r0111100001001000
  169.         2r0101000010111000
  170.         2r0110000110000000
  171.         2r1111111100000000)
  172.     offset: 0@0).
  173.  
  174.     WaitCursor _ 
  175.           (Cursor
  176.             extent: 16@16
  177.             fromArray: #(
  178.         2r1111111111111111
  179.         2r1000000000000001
  180.         2r0100000000000010
  181.         2r0010000000000100
  182.         2r0001110000111000
  183.         2r0000111101110000
  184.         2r0000011011100000
  185.         2r0000001111000000
  186.         2r0000001111000000
  187.         2r0000010110100000
  188.         2r0000100010010000
  189.         2r0001000110001000
  190.         2r0010001101000100
  191.         2r0100111111110010
  192.         2r1011111111111101
  193.         2r1111111111111111)
  194.             offset: 0@0).
  195.  
  196.     BlankCursor _ Cursor new.
  197.  
  198.     XeqCursor _ 
  199.         (Cursor
  200.             extent: 16@16
  201.             fromArray: #(
  202.         2r1000000000010000
  203.         2r1100000000010000
  204.         2r1110000000111000
  205.         2r1111000111111111
  206.         2r1111100011000110
  207.         2r1111110001000100
  208.         2r1111111001111100
  209.         2r1111000001101100
  210.         2r1101100011000110
  211.         2r1001100010000010
  212.         2r0000110000000000
  213.         2r0000110000000000
  214.         2r0000011000000000
  215.         2r0000011000000000
  216.         2r0000001100000000
  217.         2r0000001100000000)
  218.     offset: 0@0).
  219.  
  220.     SquareCursor _ 
  221.         (Cursor
  222.             extent: 16@16
  223.             fromArray: #(
  224.         2r0
  225.         2r0
  226.         2r0
  227.         2r0
  228.         2r0
  229.         2r0000001111000000
  230.         2r0000001111000000
  231.         2r0000001111000000
  232.         2r0000001111000000
  233.         2r0
  234.         2r0
  235.         2r0
  236.         2r0
  237.         2r0
  238.         2r0
  239.         2r0)
  240.     offset: -8@-8).
  241.  
  242.     NormalCursor _   
  243.         (Cursor
  244.             extent: 16@16
  245.             fromArray: #(
  246.         2r1000000000000000
  247.         2r1100000000000000
  248.         2r1110000000000000
  249.         2r1111000000000000
  250.         2r1111100000000000
  251.         2r1111110000000000
  252.         2r1111111000000000
  253.         2r1111100000000000
  254.         2r1111100000000000
  255.         2r1001100000000000
  256.         2r0000110000000000
  257.         2r0000110000000000
  258.         2r0000011000000000
  259.         2r0000011000000000
  260.         2r0000001100000000
  261.         2r0000001100000000)
  262.     offset: 0@0).
  263.  
  264.     CrossHairCursor _   
  265.         (Cursor
  266.             extent: 16@16
  267.             fromArray: #(
  268.         2r0000000100000000
  269.         2r0000000100000000
  270.         2r0000000100000000
  271.         2r0000000100000000
  272.         2r0000000100000000
  273.         2r0000000100000000
  274.         2r0000000100000000
  275.         2r1111111111111110
  276.         2r0000000100000000
  277.         2r0000000100000000
  278.         2r0000000100000000
  279.         2r0000000100000000
  280.         2r0000000100000000
  281.         2r0000000100000000
  282.         2r0000000100000000
  283.         2r0)
  284.             offset: -7@-7).
  285.  
  286.     MarkerCursor _ 
  287.         Cursor
  288.             extent: 16@16
  289.             fromArray: #(
  290.         2r0
  291.         2r0
  292.         2r0
  293.         2r0000001000000000
  294.         2r0000001110000000
  295.         2r0000001111100000
  296.         2r1111111111111000
  297.         2r1111111111111110
  298.         2r1111111111111000
  299.         2r0000001111100000
  300.         2r0000001110000000
  301.         2r0000001000000000
  302.         2r0
  303.         2r0
  304.         2r0
  305.         2r0)
  306.             offset: -7@-7.
  307.  
  308.     UpCursor _ 
  309.         Cursor 
  310.             extent: 16@16
  311.             fromArray: #(
  312.         2r1000000000000000
  313.         2r1100000000000000
  314.         2r1110000000000000
  315.         2r1111000000000000
  316.         2r1111100000000000
  317.         2r1111110000000000
  318.         2r1100000000000000
  319.         2r1100000000000000
  320.         2r1100000000000000
  321.         2r1100000000000000
  322.         2r1100000000000000
  323.         2r1100000000000000
  324.         2r1100000000000000
  325.         2r1100000000000000
  326.         2r1100000000000000
  327.         2r1100000000000000)
  328.              offset: 0@-7.
  329.  
  330.     DownCursor _
  331.          Cursor 
  332.             extent: 16@16
  333.             fromArray: #(
  334.         2r0000110000000000
  335.         2r0000110000000000
  336.         2r0000110000000000
  337.         2r0000110000000000
  338.         2r0000110000000000
  339.         2r0000110000000000
  340.         2r0000110000000000
  341.         2r0000110000000000
  342.         2r0000110000000000
  343.         2r0000110000000000
  344.         2r1111110000000000
  345.         2r0111110000000000
  346.         2r0011110000000000
  347.         2r0001110000000000
  348.         2r0000110000000000
  349.         2r0000010000000000)
  350.             offset: -5@-7.
  351.  
  352.     GarbageCursor _ Cursor
  353.     extent: 16@16
  354.     fromArray: #(
  355.         2r0000111111100000
  356.         2r0001000000011000
  357.         2r0001000000000100
  358.         2r0000111111100100
  359.         2r0001111111111000
  360.         2r0001011111101000
  361.         2r0001000000001000
  362.         2r0001001001001000
  363.         2r0001001001001000
  364.         2r0001001001001000
  365.         2r0001001001001000
  366.         2r0001001001001000
  367.         2r0001001001001000
  368.         2r0001001001001000
  369.         2r0000100000010000
  370.         2r0000011111100000)
  371.     offset: 0@0.
  372.  
  373. "Cursor initialize"!
  374.  
  375. initializeOthers
  376.     "initialize any new, non-standard cursors"
  377.  
  378.     UpDownCursor _   (Cursor
  379.     extent: 16@16
  380.     fromArray: #(
  381.         2r110000000
  382.         2r1111000000
  383.         2r11111100000
  384.         2r111111110000
  385.         2r1111111111000
  386.         2r110000000
  387.         2r110000000
  388.         2r110000000
  389.         2r110000000
  390.         2r110000000
  391.         2r110000000
  392.         2r1111111111000
  393.         2r111111110000
  394.         2r11111100000
  395.         2r1111000000
  396.         2r110000000)
  397.     offset: -8@-8).
  398.  
  399.     UpArrowHeadCursor _   (Cursor
  400.     extent: 16@16
  401.     fromArray: #(
  402.         2r110000000
  403.         2r1111000000
  404.         2r11111100000
  405.         2r111111110000
  406.         2r1111111111000
  407.         2r110000000
  408.         2r110000000
  409.         2r110000000
  410.         2r0
  411.         2r0
  412.         2r0
  413.         2r0
  414.         2r0
  415.         2r0
  416.         2r0
  417.         2r0)
  418.     offset: -8@-8).
  419.  
  420.     DownArrowHeadCursor _   (Cursor
  421.     extent: 16@16
  422.     fromArray: #(
  423.         2r0
  424.         2r0
  425.         2r0
  426.         2r0
  427.         2r0
  428.         2r0
  429.         2r0
  430.         2r0
  431.         2r110000000
  432.         2r110000000
  433.         2r110000000
  434.         2r1111111111000
  435.         2r111111110000
  436.         2r11111100000
  437.         2r1111000000
  438.         2r110000000)
  439.     offset: -8@-8).
  440.  
  441.     LeftArrowHeadCursor _   (Cursor
  442.     extent: 16@16
  443.     fromArray: #(
  444.         2r0
  445.         2r0
  446.         2r0
  447.         2r100000000000
  448.         2r1100000000000
  449.         2r11100000000000
  450.         2r111100000000000
  451.         2r1111111100000000
  452.         2r1111111100000000
  453.         2r111100000000000
  454.         2r11100000000000
  455.         2r1100000000000
  456.         2r100000000000
  457.         2r0
  458.         2r0
  459.         2r0)
  460.     offset: -8@-8).
  461.  
  462.     RightArrowHeadCursor _   (Cursor
  463.     extent: 16@16
  464.     fromArray: #(
  465.         2r0
  466.         2r0
  467.         2r0
  468.         2r10000
  469.         2r11000
  470.         2r11100
  471.         2r11110
  472.         2r11111111
  473.         2r11111111
  474.         2r11110
  475.         2r11100
  476.         2r11000
  477.         2r10000
  478.         2r0
  479.         2r0
  480.         2r0)
  481.     offset: -8@-8).
  482.  
  483.  
  484.     SpiralCursor _ (Cursor
  485.     extent: 16@16
  486.     fromArray: #(
  487.         2r1111111111111111
  488.         2r1000000000000000
  489.         2r1011111111111110
  490.         2r1010000000000010
  491.         2r1010111111111010
  492.         2r1010100000001010
  493.         2r1010101111101010
  494.         2r1010101000101010
  495.         2r1010101010101010
  496.         2r1010100010101010
  497.         2r1010111110101010
  498.         2r1010000000101010
  499.         2r1011111111101010
  500.         2r1000000000001010
  501.         2r1111111111111010
  502.         2r10)
  503.     offset: 0@0).
  504.  
  505. "Cursor initializeOthers"!
  506.  
  507. texCursorInitialize
  508.     "initialize the print out in LaTeX cursor - Cursor tex"
  509.  
  510.     TexCursor _ (Cursor
  511.     extent: 16@16
  512.     fromArray: #(
  513.         2r0
  514.         2r0
  515.         2r0
  516.         2r111110000110011
  517.         2r101010000010010
  518.         2r1000000011110
  519.         2r1011111001100
  520.         2r1001000001100
  521.         2r1001000011110
  522.         2r1001111010010
  523.         2r11101000110011
  524.         2r1000000000
  525.         2r11111000000
  526.         2r0
  527.         2r0
  528.         2r0)
  529.     offset: 0@0)! !
  530.  
  531. !Cursor class methodsFor: 'instance creation'!
  532.  
  533. extent: extentPoint fromArray: anArray offset: offsetPoint 
  534.     "Answer a new instance of me with width and height specified by
  535.     extentPoint, offset by offsetPoint, and bits from anArray."
  536.  
  537.     extentPoint = (16 @ 16)
  538.         ifTrue: 
  539.             [^super
  540.                 extent: extentPoint
  541.                 fromArray: anArray
  542.                 offset: offsetPoint]
  543.         ifFalse: [self error: 'cursors must be 16@16']!
  544.  
  545. new
  546.     ^self
  547.         extent: 16 @ 16
  548.         fromArray: Array new
  549.         offset: 0 @ 0
  550.     "Cursor new bitEdit show."! !
  551.  
  552. !Cursor class methodsFor: 'current cursor'!
  553.  
  554. currentCursor
  555.     "Answer the instance of Cursor that is the one currently displayed."
  556.     ^CurrentCursor!
  557.  
  558. currentCursor: aCursor 
  559.     "Make the instance of cursor, aCursor, be the current cursor.  Display
  560.     it.  Create an error if the argument is not a Cursor."
  561.  
  562.     aCursor class == self
  563.         ifTrue: 
  564.             [CurrentCursor _ aCursor.
  565.             aCursor beCursor]
  566.         ifFalse: [self error: 'The new cursor must be an instance of class Cursor']!
  567.  
  568. cursorLink: boolean 
  569.     "Cause the cursor to track the pointing device location if the argument is true.  
  570.     Decouple the cursor from the pointing device if the argument is false.  
  571.     Essential.  See Object documentation whatIsAPrimitive."
  572.  
  573.     <primitive: 92>
  574.     ^self primitiveFailed! !
  575.  
  576. !Cursor class methodsFor: 'constants'!
  577.  
  578. blank
  579.     "Answer the instance of me that is all white."
  580.     ^BlankCursor!
  581.  
  582. corner
  583.     "Answer the instance of me that is the shape of the bottom right corner of
  584.     a rectangle."
  585.     ^CornerCursor!
  586.  
  587. crossHair
  588.     "Answer the instance of me that is the shape of a cross."
  589.     ^CrossHairCursor!
  590.  
  591. down
  592.     "Answer the instance of me that is the shape of an arrow facing downward."
  593.     ^DownCursor!
  594.  
  595. downArrowHead
  596.     ^DownArrowHeadCursor!
  597.  
  598. execute
  599.     "Answer the instance of me that is the shape of an arrow slanted left
  600.     with a star next to it."
  601.     ^XeqCursor!
  602.  
  603. garbage
  604.  
  605.     ^GarbageCursor!
  606.  
  607. leftArrowHead
  608.     ^LeftArrowHeadCursor!
  609.  
  610. marker
  611.     "Answer the instance of me that is displayed when thumb-scrolling."
  612.     ^MarkerCursor!
  613.  
  614. normal
  615.     "Answer the instance of me that is the shape of an arrow slanted left."
  616.     ^NormalCursor!
  617.  
  618. origin
  619.     "Answer the instance of me that is the shape of the top left corner of a rectangle."
  620.     ^OriginCursor!
  621.  
  622. read
  623.     "Answer the instance of me that is the shape of eyeglasses."
  624.     ^ReadCursor!
  625.  
  626. rightArrowHead
  627.     ^RightArrowHeadCursor!
  628.  
  629. spiral
  630.     ^SpiralCursor!
  631.  
  632. square
  633.     "Answer the instance of me that is the shape of a square."
  634.     ^SquareCursor!
  635.  
  636. tex
  637.     "Answer the instance of me that spells TeX."
  638.  
  639.     ^TexCursor!
  640.  
  641. up
  642.     "Answer the instance of me that is the shape of an arrow facing upward."
  643.     ^UpCursor!
  644.  
  645. upArrowHead
  646.     ^UpArrowHeadCursor!
  647.  
  648. upDown
  649.     "Answer the instance of me that is the shape of an up-down double-headed arrow. "
  650.  
  651.     ^UpDownCursor!
  652.  
  653. wait
  654.     "Answer the instance of me that is the shape of an hourglass."
  655.     ^WaitCursor!
  656.  
  657. write
  658.     "Answer the instance of me that is the shape of a pen writing."
  659.     ^WriteCursor! !
  660.  
  661. Cursor initialize!
  662. 'From Smalltalk-80, version 2, of April 1, 1983 on 10 December 1986 at 3:54:24 pm'!
  663.  
  664.  
  665.  
  666. !ControlManager methodsFor: 'displaying'!
  667.  
  668. background: aForm 
  669.     "Sets the current project background to be aForm. Re-display the  
  670.     screen."
  671.  
  672.     ScheduledControllers screenController model form: aForm.
  673.     ScheduledControllers restore
  674.  
  675.     "ScheduledControllers background: Cursor spiral."
  676.     "ScheduledControllers background: Form veryLightGray."!
  677.  
  678. restore
  679.     "Clear the screen to the current pattern
  680.      and then redisplay all the scheduled views."
  681.  
  682.     self unschedule: screenController.
  683.     self scheduleOnBottom: screenController.
  684.     screenController view window: Display boundingBox.
  685.     scheduledControllers reverseDo: 
  686.         [:aController | aController view display; deEmphasize].
  687.     Cursor normal show! !'From Smalltalk-80, version 2, of April 1, 1983 on 10 December 1986 at 3:54:30 pm'!
  688.  
  689.  
  690.  
  691. !ControlManager methodsFor: 'initialize-release'!
  692.  
  693. initialize
  694.     "Initialize the receiver to refer to only the background controller."
  695.     | screenView |
  696.     screenController _ ScreenController new.
  697.     screenView _ FormView new.
  698.     screenView model: (InfiniteForm with: (ScheduledControllers screenController model)) controller: screenController.
  699.     screenView window: Display boundingBox.
  700.     scheduledControllers _ OrderedCollection with: screenController!
  701.  
  702. release
  703.     scheduledControllers == nil
  704.         ifFalse: 
  705.             [scheduledControllers 
  706.                 do: [:controller | (controller isKindOf: Controller)
  707.                                 ifTrue: [controller view release]
  708.                                 ifFalse: [controller release]].
  709.             scheduledControllers _ nil]! !'From Smalltalk-80, version 2, of April 1, 1983 on 10 December 1986 at 4:40:14 pm'!
  710.  
  711.  
  712.  
  713. !ControlManager methodsFor: 'accessing'!
  714.  
  715. screenController
  716.     "returns the current screenController"
  717.  
  718.     ^screenController! !'From Smalltalk-80, version 2, of April 1, 1983 on 10 December 1986 at 3:54:36 pm'!
  719.  
  720.  
  721.  
  722. !StandardSystemView methodsFor: 'framing'!
  723.  
  724. erase
  725.     "Clear the display box of the receiver to be the screen background."
  726.  
  727.     ScheduledControllers screenController model displayOn: Display at: 0@0 clippingBox: self displayBox rule: Form over mask: Form black.
  728.     ScheduledControllers screenController model displayOn: Display at: 0@0 clippingBox: self labelDisplayBox rule: Form over mask: Form black.
  729.     isLabelComplemented _ false.! !
  730.